{"componentChunkName":"component---src-templates-post-jsx","path":"/[2020] 정보 처리 기사 실기 8-SQL 응용/","result":{"data":{"site":{"siteMetadata":{"title":"jigglog","author":"JIGGLYPOP","homepage":"http://jigglog.s3-website.ap-northeast-2.amazonaws.com"}},"post":{"id":"69f58675-a4cf-5c40-8552-1ae16aa3c39b","html":"<blockquote>\n<p>정보처리기사 공부 후 정리 자료입니다. 정확하지 않을 수 있으니 꼭 책을 참고해서 공부하세요</p>\n</blockquote>\n<blockquote>\n<p>2020 정보 처리 기사 SQL 응용 입니다. 정처기 공부를 할 때 활용하세요.</p>\n</blockquote>\n<h1 id=\"1-ddl\" style=\"position:relative;\"><a href=\"#1-ddl\" aria-label=\"1 ddl permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. DDL</h1>\n<hr>\n<ul>\n<li><code class=\"language-text\">DDL</code> : <em>DB 구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어</em></li>\n<li>DDL은 번역한 결과가 데이터 사전이라는 특별한 파일에 여러 개의 테이블로서 저장 (CREATE SCHEMA, CREATE DOMAIN, CREATE TABLE, CREATE VIEW, CREATE INDEX, ALTER TABLE, DROP)</li>\n<li>\n<p><code class=\"language-text\">CREATE TABLE</code>  : 테이블을 정의하는 명령문</p>\n<ul>\n<li><code class=\"language-text\">PRIMARY KEY</code> : 기본키로 사용할 속성 또는 속성의 집합을 지정</li>\n<li><code class=\"language-text\">UNIQUE</code> : 대체키로 사용할 속성 또는 속성의 집합을 지정하는 것으로 UNIQUE로 지정한 속성은 중복된 값을 가질 수 없음</li>\n<li><code class=\"language-text\">ON DELETE</code> : 참조 테이블의 튜플이 삭제되었을 때 기본 테이블에 취해야 할 사항을 지정(NO ACTION, CASCADE, SET NULL, SET DEFAULT)</li>\n<li><code class=\"language-text\">ON UPDATE</code> : 참조 테이블의 참조 속성 값이 변경되었을 때 본 테이블에 취해야 할 사항을 지정(NO ACTION, CASCADE, SET NULL, SET DEFAULT)</li>\n<li><code class=\"language-text\">CONSTRAINT</code> : 제약 조건의 이름을 지정. 이름을 지정할 필요가 없으면 CHECK절만 사용하여 속성 값에 대한 제약 조건을 명시</li>\n<li><code class=\"language-text\">CHECK</code> : 속성 값에 대한 제약 조건을 정의</li>\n</ul>\n</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">CREATE</span> <span class=\"token keyword\">TABLE</span> 학생<span class=\"token punctuation\">(</span>\n    이름 <span class=\"token keyword\">VARCHAR</span><span class=\"token punctuation\">(</span><span class=\"token number\">15</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">NOT</span> <span class=\"token boolean\">NULL</span><span class=\"token punctuation\">,</span> \n    학번 <span class=\"token keyword\">CHAR</span><span class=\"token punctuation\">(</span><span class=\"token number\">8</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> \n    전공 <span class=\"token keyword\">CHAR</span><span class=\"token punctuation\">(</span><span class=\"token number\">8</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> \n    성별 <span class=\"token keyword\">VARCHAR</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> \n    생년월일 <span class=\"token keyword\">DATE</span><span class=\"token punctuation\">,</span> \n    <span class=\"token keyword\">PRIMARY</span> <span class=\"token keyword\">KEY</span><span class=\"token punctuation\">(</span>학번<span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> \n    <span class=\"token keyword\">FOREIGN</span> <span class=\"token keyword\">KEY</span><span class=\"token punctuation\">(</span>전공<span class=\"token punctuation\">)</span> <span class=\"token keyword\">REFERENCES</span> 학과<span class=\"token punctuation\">(</span>학과코드<span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">ON</span> <span class=\"token keyword\">DELETE</span> <span class=\"token keyword\">SET</span> <span class=\"token boolean\">NULL</span>\n<span class=\"token keyword\">ON</span> <span class=\"token keyword\">UPDATE</span> <span class=\"token keyword\">CASCADE</span><span class=\"token punctuation\">,</span> \n<span class=\"token keyword\">CONSTRAINT</span> 생년월일제약 <span class=\"token keyword\">CHECK</span><span class=\"token punctuation\">(</span>생년월일<span class=\"token operator\">>=</span><span class=\"token string\">'1980-01-01'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<ul>\n<li>다른 테이블을 이용한 테이블 정의 : 기존 테이블의 정보를 이용해 새로운 테이블을 정의</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">CREATE</span> <span class=\"token keyword\">TABLE</span> 재학생 \n<span class=\"token keyword\">AS</span> <span class=\"token keyword\">SELECT</span> 학번<span class=\"token punctuation\">,</span> 이름\n<span class=\"token keyword\">FROM</span> 학생<span class=\"token punctuation\">;</span></code></pre></div>\n<ul>\n<li>\n<p><code class=\"language-text\">CREATE VIEW</code> : 뷰(View)를 정의하는 명령문</p>\n<ul>\n<li>SELECT문을 서브 쿼리로사용하여 SELECT문의 결과로서 뷰를 생성</li>\n<li>서브 쿼리인 SELECT문에는 UNION이나 ORDER BY절을 사용할 수 없음</li>\n<li>속성명을 기술하지 않으면 SELECT문의 속성명이 자동으로 사용</li>\n</ul>\n</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">CREATE</span> <span class=\"token keyword\">VIEW</span> 건축공학과<span class=\"token punctuation\">(</span>이름<span class=\"token punctuation\">,</span> 학번<span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">AS</span> <span class=\"token keyword\">SELECT</span> 이름<span class=\"token punctuation\">,</span> 학번\n<span class=\"token keyword\">FROM</span> 학생\n<span class=\"token keyword\">WHERE</span> 전공<span class=\"token operator\">=</span><span class=\"token string\">'건축'</span><span class=\"token punctuation\">;</span></code></pre></div>\n<ul>\n<li>\n<p><code class=\"language-text\">ALTER TABLE</code> : 테이블에 대한 정의를 변경</p>\n<ul>\n<li><code class=\"language-text\">ADD</code> : 새로운 속성(열)을 추가</li>\n<li><code class=\"language-text\">MODIFY</code> : 특정 속성의 정의를 변경</li>\n<li><code class=\"language-text\">DROP COLUMN</code> : 특정 속성을 삭제</li>\n</ul>\n</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">ALTER</span> <span class=\"token keyword\">TABLE</span> 학생 <span class=\"token keyword\">ADD</span> 학년 <span class=\"token keyword\">VARCHAR</span><span class=\"token punctuation\">(</span><span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">ALTER</span> <span class=\"token keyword\">TABLE</span> 학생 <span class=\"token keyword\">MODIFY</span> 학번 <span class=\"token keyword\">VARCHAR</span><span class=\"token punctuation\">(</span><span class=\"token number\">10</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">NOT</span> <span class=\"token boolean\">NULL</span><span class=\"token punctuation\">;</span></code></pre></div>\n<ul>\n<li>\n<p><code class=\"language-text\">DROP</code> : 기본 테이블 제거</p>\n<ul>\n<li><code class=\"language-text\">CASCADE</code> : 제거할 요소를 참조하는 다른 모든 개체를 함께 제거. 즉 주 테이블의 데이터 제거시 각 외래키와 관계를 맺고 있는 모든 데이터를 제거하는 참조 무결성 제약 조건을 설정하기 위해 사용</li>\n<li><code class=\"language-text\">RESTRICTED</code> : 다른 개체가 제거할 요소를 참조중일 때는 제거를 취소</li>\n</ul>\n</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">DROP</span> <span class=\"token keyword\">TABLE</span> 학생 <span class=\"token keyword\">CASCADE</span><span class=\"token punctuation\">;</span></code></pre></div>\n<h1 id=\"2-dcl\" style=\"position:relative;\"><a href=\"#2-dcl\" aria-label=\"2 dcl permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2. DCL</h1>\n<hr>\n<ul>\n<li>\n<p><code class=\"language-text\">DCL(데이터 제어어)</code> : 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의</p>\n<ul>\n<li>DCL은 데이터베이스 관리자(DBA)가 데이터 관리를 목적으로 사용</li>\n<li>GRANT, REVOKE, COMMIT, ROLLBACK, SAVEPOINT</li>\n</ul>\n</li>\n<li>\n<p><code class=\"language-text\">GRANT / REVOKE</code></p>\n<ul>\n<li>데이터베이스 관리자가 데이터베이스 사용자에게 권한을 부여하거나 취소</li>\n<li><code class=\"language-text\">GRANT</code> : 권한 부여</li>\n<li><code class=\"language-text\">REVOKE</code> : 권한 취소</li>\n</ul>\n</li>\n<li>\n<p>사용자등급 지정 및 해제</p>\n<ul>\n<li><code class=\"language-text\">DBA</code> : 데이터베이스 관리자</li>\n<li><code class=\"language-text\">RESOURCE</code> : 데이터베이스 및 테이블 생성 가능자</li>\n<li><code class=\"language-text\">CONNECT</code> : 단순 사용자</li>\n</ul>\n</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">GRANT</span> RESOURCE <span class=\"token keyword\">TO</span> NABI\n<span class=\"token comment\">-- 사용자 ID가 NABI인 사람에게 데이터베이스 및 테이블 생성 가능 권한 부여</span>\n<span class=\"token keyword\">GRANT</span> <span class=\"token keyword\">CONNECT</span> <span class=\"token keyword\">TO</span> STAR<span class=\"token punctuation\">;</span>\n<span class=\"token comment\">-- 사용자 ID가 STAR인 사람에게 단순 사용자 권한 부여</span>\n<span class=\"token keyword\">REVOKE</span> 사용자등급 <span class=\"token keyword\">FROM</span> 사용자_ID_리스트</code></pre></div>\n<ul>\n<li>\n<p>테이블 및 속성에 대한 권한 부여 및 취소</p>\n<ul>\n<li>권한 종류 : ALL, SELECT, INSERT, DELETE, UPDATE, ALTER</li>\n<li><code class=\"language-text\">WITH GRANT OPTION</code> : 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한을 부여</li>\n<li><code class=\"language-text\">GRANT OPTION FOR</code> : 다른 사용자에게 권한을 부여할 수 있는 권한을 취소</li>\n<li><code class=\"language-text\">CASCADE</code> : 권한 취소 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소</li>\n</ul>\n</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">GRANT</span> <span class=\"token keyword\">ALL</span> <span class=\"token keyword\">ON</span> 고객 <span class=\"token keyword\">TO</span> NABI <span class=\"token keyword\">WITH</span> <span class=\"token keyword\">GRANT</span> <span class=\"token keyword\">OPTION</span>\n<span class=\"token comment\">-- 사용자 ID가 NABI인 사람에게 테이블에 대한 모든 권한과 다른사람에 대한 권한 부여</span>\n<span class=\"token keyword\">GRANT</span> <span class=\"token keyword\">ALL</span> <span class=\"token keyword\">ON</span> 학생 <span class=\"token keyword\">TO</span> YDH<span class=\"token punctuation\">;</span>\n<span class=\"token comment\">-- YDH에게 학생 테이블의 모든 권한 부여</span>\n<span class=\"token keyword\">GRANT</span> <span class=\"token keyword\">DELETE</span> <span class=\"token keyword\">ON</span> 강좌 <span class=\"token keyword\">TO</span> YDH <span class=\"token keyword\">WITH</span> <span class=\"token keyword\">GRANT</span> <span class=\"token keyword\">OPTION</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">-- YDH에게 강좌 테이블의 삭제 권한과 삭제 권한을 다른 사람에게 부여할 수 있는 권한 부여</span>\n<span class=\"token keyword\">REVOKE</span> <span class=\"token keyword\">SELECT</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">INSERT</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">DELETE</span> <span class=\"token keyword\">ON</span> 교수 <span class=\"token keyword\">FROM</span> YDH\n<span class=\"token comment\">-- YDH에게 부여된 교수에 대한 SELECT, INSERT, DELETE 권한 취소</span>\n<span class=\"token keyword\">REVOKE</span> <span class=\"token keyword\">UPDATE</span> <span class=\"token keyword\">ON</span> 수강 <span class=\"token keyword\">FROM</span> YDH <span class=\"token keyword\">CASCADE</span>\n<span class=\"token comment\">-- YDH에 부여된 UPDATE 권한과 권한 부여 권한, 다른사람에게 부여한 권한 모두 취소</span>\n<span class=\"token keyword\">REVOKE</span> <span class=\"token keyword\">GRANT</span> <span class=\"token keyword\">OPTION</span> <span class=\"token keyword\">FOR</span> <span class=\"token keyword\">UPDATE</span> <span class=\"token keyword\">ON</span> 고객 <span class=\"token keyword\">FROM</span> STAR<span class=\"token punctuation\">;</span>\n<span class=\"token comment\">-- 사용자 ID가 STAR 인 사람에게 부여한 고객 테이블에 대한 권한 중 UPDATE 권한을 다른 사람에게 부여할 수 있는 권한만 취소</span></code></pre></div>\n<ul>\n<li><code class=\"language-text\">COMMIT</code> : 트랜잭션이 성공적으로 끝나면 데이터베이스가 새로운 일관성 상태를 가지기 위해 변경된 모든 내용을 데이터베이스에 반영하여야 할 때</li>\n<li><code class=\"language-text\">ROLLBACK</code> : 아직 COMMIT되지 않은 변경된 모든 내용들을 취소하고 데이터베이스를 이전 상태로 되돌림</li>\n<li><code class=\"language-text\">SAVEPOINT</code> : 트랜잭션 내에 ROLLBACK 할 위치인 저장점을 지정하는 명령어, 저장점을 지정할 때는 이름을 부여하며, ROLLBACK 시 지정된 저장점까지의 트랜잭션 처리 내용이 취소</li>\n</ul>\n<h1 id=\"3-dml\" style=\"position:relative;\"><a href=\"#3-dml\" aria-label=\"3 dml permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3. DML</h1>\n<hr>\n<ul>\n<li>\n<p><code class=\"language-text\">DML(데이터 조작어)</code> : 데이터베이스 사용자가 응용 프로그램이나 질의어를 통해 저장된 데이터를 실질적으로 관리하는데 사용되는 언어</p>\n<ul>\n<li>SELECT, INSERT, DELETE, UPDATE</li>\n</ul>\n</li>\n<li><code class=\"language-text\">삽입문(INSERT INTO)</code> : 기본 테이블에 새로운 튜플을 삽입</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">INSERT</span> <span class=\"token keyword\">INTO</span> 사원<span class=\"token punctuation\">(</span>이름<span class=\"token punctuation\">,</span> 부서<span class=\"token punctuation\">)</span> \n<span class=\"token keyword\">VALUES</span><span class=\"token punctuation\">(</span><span class=\"token string\">'YDH'</span><span class=\"token punctuation\">,</span><span class=\"token string\">'인터넷'</span><span class=\"token punctuation\">)</span>\n\n <span class=\"token comment\">-- 사원 테이블에 (이름-YDH, 부서-인터넷) 입력</span>\n \n <span class=\"token keyword\">INSERT</span> <span class=\"token keyword\">INTO</span> 사원 <span class=\"token punctuation\">(</span>이름<span class=\"token punctuation\">,</span> 부서<span class=\"token punctuation\">,</span> 생일<span class=\"token punctuation\">,</span> 주소<span class=\"token punctuation\">,</span> 기본급<span class=\"token punctuation\">)</span> \n <span class=\"token keyword\">VALUES</span> <span class=\"token punctuation\">(</span><span class=\"token string\">'YDH'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'기획'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'2020-10-03'</span><span class=\"token punctuation\">,</span> <span class=\"token string\">'대전'</span><span class=\"token punctuation\">,</span> <span class=\"token number\">90</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n \n <span class=\"token comment\">-- 사원 테이블에 ('YDH', '기획', '2020-10-03', '대전', 90) 삽입</span>\n \n <span class=\"token keyword\">INSERT</span> <span class=\"token keyword\">INTO</span> 편집부원<span class=\"token punctuation\">(</span>이름<span class=\"token punctuation\">,</span> 생일<span class=\"token punctuation\">,</span> 주소<span class=\"token punctuation\">,</span> 기본급<span class=\"token punctuation\">)</span>\n <span class=\"token keyword\">SELECT</span> 이름<span class=\"token punctuation\">,</span> 생일<span class=\"token punctuation\">,</span> 주소<span class=\"token punctuation\">,</span> 기본급 <span class=\"token keyword\">FROM</span> 사원\n <span class=\"token keyword\">WHERE</span> 부서<span class=\"token operator\">=</span><span class=\"token string\">'편집'</span><span class=\"token punctuation\">;</span>\n \n <span class=\"token comment\">-- 사원 테이블에 있는 편집부의 모든 튜플을 편집부원(이름, 생일, 주소, 기본급) 테이블에 삽입</span></code></pre></div>\n<ul>\n<li><code class=\"language-text\">삭제문(DELETE FROM)</code> : 기본 테이블에 있는 튜플들 중에서 특정 튜플을 삭제</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">DELETE</span>\n<span class=\"token keyword\">FROM</span> 사원\n<span class=\"token keyword\">WHERE</span> 이름<span class=\"token operator\">=</span><span class=\"token string\">'YDH1'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">-- 사원 테이블에서 이름이 YDH1인 튜플 삭제</span>\n\n<span class=\"token keyword\">DELETE</span> \n<span class=\"token keyword\">FROM</span> 사원\n<span class=\"token comment\">-- 사원 테이블의 모든 레코드 삭제</span></code></pre></div>\n<ul>\n<li><code class=\"language-text\">갱신문(UPDATE SET)</code> :기본 테이블에 있는 튜플들 중에서 특정 튜플의 내용을 변경</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">UPDATE</span> 사원\n<span class=\"token keyword\">SET</span> 주소<span class=\"token operator\">=</span><span class=\"token string\">'세종'</span><span class=\"token punctuation\">,</span>기본급 <span class=\"token operator\">=</span> 기본급 <span class=\"token operator\">+</span> <span class=\"token number\">90</span>\n<span class=\"token keyword\">WHERE</span> 이름<span class=\"token operator\">=</span><span class=\"token string\">'YDH2'</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">-- 사원 테이블에서 YDH2의 주소를 세종으로, 기본급을 90만원 인상</span></code></pre></div>\n<h1 id=\"4-dml---select1\" style=\"position:relative;\"><a href=\"#4-dml---select1\" aria-label=\"4 dml   select1 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>4. DML - SELECT(1)</h1>\n<hr>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> <span class=\"token punctuation\">[</span>PREDICATE<span class=\"token punctuation\">]</span> <span class=\"token punctuation\">[</span>테이블명<span class=\"token punctuation\">.</span><span class=\"token punctuation\">]</span>속성명 <span class=\"token punctuation\">[</span><span class=\"token keyword\">AS</span> 별칭<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span>테이블 명<span class=\"token punctuation\">.</span><span class=\"token punctuation\">]</span>속성명<span class=\"token punctuation\">,</span> …<span class=\"token punctuation\">]</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">,</span> 그룹함수<span class=\"token punctuation\">(</span>속성명<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">[</span><span class=\"token keyword\">AS</span> 별칭<span class=\"token punctuation\">]</span><span class=\"token punctuation\">]</span>\n<span class=\"token keyword\">FROM</span> 테이블명<span class=\"token punctuation\">[</span><span class=\"token punctuation\">,</span> 테이블명<span class=\"token punctuation\">,</span> …<span class=\"token punctuation\">]</span> <span class=\"token punctuation\">[</span><span class=\"token keyword\">WHERE</span> 조건<span class=\"token punctuation\">]</span>\n<span class=\"token punctuation\">[</span><span class=\"token keyword\">GROUP</span> <span class=\"token keyword\">BY</span> 속성명<span class=\"token punctuation\">,</span> 속성명<span class=\"token punctuation\">,</span> …<span class=\"token punctuation\">]</span> <span class=\"token punctuation\">[</span><span class=\"token keyword\">HAVING</span> 조건<span class=\"token punctuation\">]</span>\n<span class=\"token punctuation\">[</span><span class=\"token keyword\">ORDER</span> <span class=\"token keyword\">BY</span> 속성명 <span class=\"token punctuation\">[</span><span class=\"token keyword\">ASC</span> <span class=\"token operator\">|</span> <span class=\"token keyword\">DESC</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">]</span></code></pre></div>\n<ul>\n<li>\n<p><code class=\"language-text\">PREDICATE</code> : 불러올 튜플 수를 제한할 명령어를 기술</p>\n<ul>\n<li><em>ALL</em> : 모든 튜플</li>\n<li><em>DISTINCT</em> : 중복된 튜플이 있으면 그 중 첫 번째 한 개만</li>\n<li><em>DISTINCTROW</em> : 중복된 튜플을 검색하지만 선택된 속성의 값이 아닌, 튜플 전체를 대상</li>\n</ul>\n</li>\n<li>\n<p>속성명 : 검색하여 불러올 속성(열) 및 수식들을 지정</p>\n<ul>\n<li>기본 테이블을 구성하는 모든 속성을 지정할 때 는 ’*’ 를 기술</li>\n<li>두 개 이상의 테이블을 대상으로 검색할 때는 (테이블명.속성명)으로 표현함</li>\n<li>AS : 속성 및 연산의 이름을 다른 제목으로 표시</li>\n</ul>\n</li>\n<li><code class=\"language-text\">FROM절</code> : 질의에 의해 검색될 데이터들을 포함하는 테이블명</li>\n<li><code class=\"language-text\">WHERE절</code> : 검색할 조건</li>\n<li><code class=\"language-text\">ORDER BY절</code> : 특정 속성을 기준으로 정렬하여 검색할 때 사용</li>\n<li><code class=\"language-text\">기본 검색</code></li>\n<li>사원 테이블의 모든 튜플 검색</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> <span class=\"token operator\">*</span> <span class=\"token keyword\">FROM</span> 사원<span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">SELECT</span> 사원<span class=\"token punctuation\">.</span><span class=\"token operator\">*</span> <span class=\"token keyword\">FROM</span> 사원<span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">SELECT</span> 이름<span class=\"token punctuation\">,</span> 부서<span class=\"token punctuation\">,</span> 생일<span class=\"token punctuation\">,</span> 주소<span class=\"token punctuation\">,</span> 기본급 <span class=\"token keyword\">FROM</span> 사원<span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">SELECT</span> 사원<span class=\"token punctuation\">.</span>이름<span class=\"token punctuation\">,</span> 사원<span class=\"token punctuation\">.</span>부서<span class=\"token punctuation\">,</span> 사원<span class=\"token punctuation\">.</span>생일<span class=\"token punctuation\">,</span> 사원<span class=\"token punctuation\">.</span>주소<span class=\"token punctuation\">,</span> 사원<span class=\"token punctuation\">.</span>기본급 <span class=\"token keyword\">FROM</span> 사원<span class=\"token punctuation\">;</span>\n\n이름 부서 생일 주소 기본급\n<span class=\"token comment\">----------------------------------</span>\n홍길동  기획 <span class=\"token number\">61</span><span class=\"token operator\">/</span><span class=\"token number\">04</span><span class=\"token operator\">/</span><span class=\"token number\">05</span> 망원동<span class=\"token number\">120</span>\n임꺽정  인터넷  <span class=\"token number\">69</span><span class=\"token operator\">/</span><span class=\"token number\">09</span><span class=\"token operator\">/</span><span class=\"token number\">01</span> 서교동 <span class=\"token number\">80</span>\n황진이  편집 <span class=\"token number\">75</span><span class=\"token operator\">/</span><span class=\"token number\">07</span><span class=\"token operator\">/</span><span class=\"token number\">21</span> 합정동<span class=\"token number\">100</span>\n김선달  편집 <span class=\"token number\">73</span><span class=\"token operator\">/</span><span class=\"token number\">10</span><span class=\"token operator\">/</span><span class=\"token number\">22</span> 망원동 <span class=\"token number\">90</span>\n성춘향  기획 <span class=\"token number\">64</span><span class=\"token operator\">/</span><span class=\"token number\">02</span><span class=\"token operator\">/</span><span class=\"token number\">20</span> 대흥동<span class=\"token number\">100</span>\n장길산  편집 <span class=\"token number\">67</span><span class=\"token operator\">/</span><span class=\"token number\">03</span><span class=\"token operator\">/</span><span class=\"token number\">11</span> 상암동<span class=\"token number\">120</span>\n일지매  기획 <span class=\"token number\">78</span><span class=\"token operator\">/</span><span class=\"token number\">04</span><span class=\"token operator\">/</span><span class=\"token number\">29</span> 연남동<span class=\"token number\">110</span>\n강건달  인터넷  <span class=\"token number\">80</span><span class=\"token operator\">/</span><span class=\"token number\">12</span><span class=\"token operator\">/</span><span class=\"token number\">11</span>  <span class=\"token number\">90</span></code></pre></div>\n<ul>\n<li>사원 테이블에서 주소만 검색하되 같은 주소는 한번만 출력</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> <span class=\"token keyword\">DISTINCT</span> 주소 <span class=\"token keyword\">FROM</span> 사원<span class=\"token punctuation\">;</span>\n\n주소                                                                                                  \n<span class=\"token comment\">------</span>\n망원동\n연남동\n서교동\n합정동\n상암동\n대흥동</code></pre></div>\n<ul>\n<li>사원 테이블에서 기본급에 특별수당 10을 더한 월급을 ‘~부서의 ~의 월급 ~‘으로 출력(오라클)</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> 부서 <span class=\"token operator\">||</span> <span class=\"token string\">'부서의'</span> <span class=\"token keyword\">AS</span> 부서<span class=\"token number\">2</span><span class=\"token punctuation\">,</span> 이름 <span class=\"token operator\">||</span> <span class=\"token string\">'의 월급'</span> <span class=\"token keyword\">AS</span> 이름<span class=\"token number\">2</span><span class=\"token punctuation\">,</span> 기본급 <span class=\"token operator\">+</span> <span class=\"token number\">10</span> <span class=\"token keyword\">AS</span> 기본급<span class=\"token number\">2</span>\n<span class=\"token keyword\">FROM</span> 사원<span class=\"token punctuation\">;</span>\n\n\n부서<span class=\"token number\">2</span>  이름<span class=\"token number\">2</span> 기본급<span class=\"token number\">2</span>\n<span class=\"token comment\">---------------------------</span>\n기획부서의 홍길동의 월급<span class=\"token number\">130</span>\n인터넷부서의  임꺽정의 월급 <span class=\"token number\">90</span>\n편집부서의 황진이의 월급<span class=\"token number\">110</span>\n편집부서의 김선달의 월급<span class=\"token number\">100</span>\n기획부서의 성춘향의 월급<span class=\"token number\">110</span>\n편집부서의 장길산의 월급<span class=\"token number\">130</span>\n기획부서의 일지매의 월급<span class=\"token number\">120</span>\n인터넷부서의  강건달의 월급<span class=\"token number\">100</span></code></pre></div>\n<ul>\n<li><code class=\"language-text\">조건 지정 검색</code></li>\n<li>사원 테이블에서 기획부의 모든 튜플</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> <span class=\"token operator\">*</span>\n<span class=\"token keyword\">FROM</span> 사원\n<span class=\"token keyword\">WHERE</span> 부서<span class=\"token operator\">=</span><span class=\"token string\">'기획'</span><span class=\"token punctuation\">;</span>\n\n이름    부서   생일    주소 기본급\n<span class=\"token comment\">------------------------------</span>\n홍길동  기획 <span class=\"token number\">61</span><span class=\"token operator\">/</span><span class=\"token number\">04</span><span class=\"token operator\">/</span><span class=\"token number\">05</span> 망원동 <span class=\"token number\">120</span>\n성춘향  기획 <span class=\"token number\">64</span><span class=\"token operator\">/</span><span class=\"token number\">02</span><span class=\"token operator\">/</span><span class=\"token number\">20</span> 대흥동 <span class=\"token number\">100</span>\n일지매  기획 <span class=\"token number\">78</span><span class=\"token operator\">/</span><span class=\"token number\">04</span><span class=\"token operator\">/</span><span class=\"token number\">29</span> 연남동 <span class=\"token number\">110</span></code></pre></div>\n<ul>\n<li>사원 테이블에서 부서는 ‘기획’이고 기본급이 110보다 큰 튜플을 검색하는 SQL문을 작성하시오</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> <span class=\"token operator\">*</span> \n<span class=\"token keyword\">FROM</span> 사원\n<span class=\"token keyword\">WHERE</span> 부서<span class=\"token operator\">=</span><span class=\"token string\">'기획'</span> <span class=\"token operator\">AND</span> 기본급 <span class=\"token operator\">></span> <span class=\"token number\">110</span><span class=\"token punctuation\">;</span>\n\n이름    부서   생일    주소 기본급\n<span class=\"token comment\">------------------------------</span>\n홍길동  기획 <span class=\"token number\">61</span><span class=\"token operator\">/</span><span class=\"token number\">04</span><span class=\"token operator\">/</span><span class=\"token number\">05</span> 망원동 <span class=\"token number\">120</span></code></pre></div>\n<ul>\n<li>사원 테이블에서 ‘부서’가 ‘기획’이거나 ‘인터넷’인 튜플 검색</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> <span class=\"token operator\">*</span> \n<span class=\"token keyword\">FROM</span> 사원\n<span class=\"token keyword\">WHERE</span> 부서<span class=\"token operator\">=</span><span class=\"token string\">'기획'</span> <span class=\"token operator\">OR</span> 부서<span class=\"token operator\">=</span><span class=\"token string\">'인터넷'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">SELECT</span> <span class=\"token operator\">*</span> \n<span class=\"token keyword\">FROM</span> 사원\n<span class=\"token keyword\">WHERE</span> 부서 <span class=\"token operator\">IN</span> <span class=\"token punctuation\">(</span><span class=\"token string\">'기획'</span><span class=\"token punctuation\">,</span><span class=\"token string\">'인터넷'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n이름    부서     생일    주소   기본급\n<span class=\"token comment\">------------------------------------</span>\n임꺽정  인터넷  <span class=\"token number\">69</span><span class=\"token operator\">/</span><span class=\"token number\">09</span><span class=\"token operator\">/</span><span class=\"token number\">01</span> 서교동  <span class=\"token number\">80</span>\n성춘향  기획    <span class=\"token number\">64</span><span class=\"token operator\">/</span><span class=\"token number\">02</span><span class=\"token operator\">/</span><span class=\"token number\">20</span> 대흥동  <span class=\"token number\">100</span>\n일지매  기획    <span class=\"token number\">78</span><span class=\"token operator\">/</span><span class=\"token number\">04</span><span class=\"token operator\">/</span><span class=\"token number\">29</span> 연남동  <span class=\"token number\">110</span>\n강건달  인터넷  <span class=\"token number\">80</span><span class=\"token operator\">/</span><span class=\"token number\">12</span><span class=\"token operator\">/</span><span class=\"token number\">11</span>         <span class=\"token number\">90</span></code></pre></div>\n<ul>\n<li>사원 테이블에서 성이 ‘김’인 사람의 튜플 검색</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> <span class=\"token operator\">*</span> \n<span class=\"token keyword\">FROM</span> 사원\n<span class=\"token keyword\">WHERE</span> 이름 <span class=\"token operator\">LIKE</span> <span class=\"token string\">'김%'</span><span class=\"token punctuation\">;</span>\n\n이름   부서   생일    주소 기본급\n<span class=\"token comment\">---------------------------------</span>\n김선달  편집 <span class=\"token number\">73</span><span class=\"token operator\">/</span><span class=\"token number\">10</span><span class=\"token operator\">/</span><span class=\"token number\">22</span> 망원동 <span class=\"token number\">90</span></code></pre></div>\n<ul>\n<li>사원 테이블에서 생일이 ‘69-01-01’에서 ‘73-12-31’</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> <span class=\"token operator\">*</span> \n<span class=\"token keyword\">FROM</span> 사원\n<span class=\"token keyword\">WHERE</span> 생일 <span class=\"token operator\">BETWEEN</span> <span class=\"token string\">'69-01-01'</span> <span class=\"token operator\">AND</span> <span class=\"token string\">'73-12-31'</span><span class=\"token punctuation\">;</span>\n\n이름     부서   생일     주소  기본급\n<span class=\"token comment\">---------------------------------</span>\n임꺽정  인터넷  <span class=\"token number\">69</span><span class=\"token operator\">/</span><span class=\"token number\">09</span><span class=\"token operator\">/</span><span class=\"token number\">01</span> 서교동 <span class=\"token number\">80</span>\n김선달  편집    <span class=\"token number\">73</span><span class=\"token operator\">/</span><span class=\"token number\">10</span><span class=\"token operator\">/</span><span class=\"token number\">22</span> 망원동 <span class=\"token number\">90</span></code></pre></div>\n<ul>\n<li>사원 테이블에서 주소가 NULL인 튜플 검색</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> <span class=\"token operator\">*</span> \n<span class=\"token keyword\">FROM</span> 사원\n<span class=\"token keyword\">WHERE</span> 주소 <span class=\"token operator\">IS</span> <span class=\"token boolean\">NULL</span><span class=\"token punctuation\">;</span>\n\n이름    부서    생일    주소   기본급\n<span class=\"token comment\">-----------------------------------</span>\n강건달  인터넷  <span class=\"token number\">80</span><span class=\"token operator\">/</span><span class=\"token number\">12</span><span class=\"token operator\">/</span><span class=\"token number\">11</span>       <span class=\"token number\">90</span></code></pre></div>\n<ul>\n<li><code class=\"language-text\">정렬 검색</code></li>\n<li>사원 테이블에서 주소를 기준으로 내림차순 정렬시켜 상위 2개 튜플만 검색(오라클)</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span>  <span class=\"token operator\">*</span> \n<span class=\"token keyword\">FROM</span> 사원\n<span class=\"token keyword\">WHERE</span> ROWNUM <span class=\"token operator\">&lt;=</span> <span class=\"token number\">2</span>\n<span class=\"token keyword\">ORDER</span> <span class=\"token keyword\">BY</span> 주소 <span class=\"token keyword\">DESC</span><span class=\"token punctuation\">;</span>\n\n이름    부서     생일    주소 기본급\n<span class=\"token comment\">------------------------------------</span>\n임꺽정  인터넷  <span class=\"token number\">69</span><span class=\"token operator\">/</span><span class=\"token number\">09</span><span class=\"token operator\">/</span><span class=\"token number\">01</span> 서교동 <span class=\"token number\">80</span>\n홍길동  기획    <span class=\"token number\">61</span><span class=\"token operator\">/</span><span class=\"token number\">04</span><span class=\"token operator\">/</span><span class=\"token number\">05</span> 망원동 <span class=\"token number\">120</span></code></pre></div>\n<ul>\n<li>사원 테이블에서 부서를 기준으로 오름차순 정렬하고 같은 부서에 대해서는 이름을 기준으로 내림차순</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span>  <span class=\"token operator\">*</span> \n<span class=\"token keyword\">FROM</span> 사원\n<span class=\"token keyword\">ORDER</span> <span class=\"token keyword\">BY</span> 부서 <span class=\"token keyword\">ASC</span><span class=\"token punctuation\">,</span> 이름 <span class=\"token keyword\">DESC</span><span class=\"token punctuation\">;</span>\n\n이름    부서    생일   주소  기본급\n<span class=\"token comment\">-----------------------------------</span>\n홍길동  기획 <span class=\"token number\">61</span><span class=\"token operator\">/</span><span class=\"token number\">04</span><span class=\"token operator\">/</span><span class=\"token number\">05</span> 망원동 <span class=\"token number\">120</span>\n일지매  기획 <span class=\"token number\">78</span><span class=\"token operator\">/</span><span class=\"token number\">04</span><span class=\"token operator\">/</span><span class=\"token number\">29</span> 연남동 <span class=\"token number\">110</span>\n성춘향  기획 <span class=\"token number\">64</span><span class=\"token operator\">/</span><span class=\"token number\">02</span><span class=\"token operator\">/</span><span class=\"token number\">20</span> 대흥동 <span class=\"token number\">100</span>\n임꺽정  인터넷  <span class=\"token number\">69</span><span class=\"token operator\">/</span><span class=\"token number\">09</span><span class=\"token operator\">/</span><span class=\"token number\">01</span> 서교동 <span class=\"token number\">80</span>\n강건달  인터넷  <span class=\"token number\">80</span><span class=\"token operator\">/</span><span class=\"token number\">12</span><span class=\"token operator\">/</span><span class=\"token number\">11</span>     <span class=\"token number\">90</span>\n황진이  편집 <span class=\"token number\">75</span><span class=\"token operator\">/</span><span class=\"token number\">07</span><span class=\"token operator\">/</span><span class=\"token number\">21</span> 합정동 <span class=\"token number\">100</span>\n장길산  편집 <span class=\"token number\">67</span><span class=\"token operator\">/</span><span class=\"token number\">03</span><span class=\"token operator\">/</span><span class=\"token number\">11</span> 상암동 <span class=\"token number\">120</span>\n김선달  편집 <span class=\"token number\">73</span><span class=\"token operator\">/</span><span class=\"token number\">10</span><span class=\"token operator\">/</span><span class=\"token number\">22</span> 망원동 <span class=\"token number\">90</span></code></pre></div>\n<ul>\n<li><code class=\"language-text\">하위 질의</code></li>\n<li>취미가 나이트댄스인 사원의 이름과 주소를 검색</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> 이름<span class=\"token punctuation\">,</span> 주소\n<span class=\"token keyword\">FROM</span> 사원\n<span class=\"token keyword\">WHERE</span> 이름<span class=\"token operator\">=</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">SELECT</span> 이름 <span class=\"token keyword\">FROM</span> 여가활동 <span class=\"token keyword\">WHERE</span> 취미<span class=\"token operator\">=</span><span class=\"token string\">'나이트댄스'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n이름    주소                                                                                                 \n<span class=\"token comment\">---------------</span>\n성춘향  대흥동                                                                                              </code></pre></div>\n<ul>\n<li>취미 활동을 하지 않는 사원</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> <span class=\"token operator\">*</span> \n<span class=\"token keyword\">FROM</span> 사원\n<span class=\"token keyword\">WHERE</span> 이름 <span class=\"token operator\">NOT</span> <span class=\"token operator\">IN</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">SELECT</span> 이름 <span class=\"token keyword\">FROM</span> 여가활동<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n\n이름    부서    생일   주소 기본급\n<span class=\"token comment\">---------------------------------</span>\n강건달  인터넷  <span class=\"token number\">80</span><span class=\"token operator\">/</span><span class=\"token number\">12</span><span class=\"token operator\">/</span><span class=\"token number\">11</span>      <span class=\"token number\">90</span>\n홍길동  기획 <span class=\"token number\">61</span><span class=\"token operator\">/</span><span class=\"token number\">04</span><span class=\"token operator\">/</span><span class=\"token number\">05</span> 망원동 <span class=\"token number\">120</span>\n황진이  편집 <span class=\"token number\">75</span><span class=\"token operator\">/</span><span class=\"token number\">07</span><span class=\"token operator\">/</span><span class=\"token number\">21</span> 합정동 <span class=\"token number\">100</span>\n장길산  편집 <span class=\"token number\">67</span><span class=\"token operator\">/</span><span class=\"token number\">03</span><span class=\"token operator\">/</span><span class=\"token number\">11</span> 상암동 <span class=\"token number\">120</span></code></pre></div>\n<ul>\n<li><code class=\"language-text\">복수 테이블 검색</code></li>\n<li>경력이 10년 이상인 사원의 이름, 부서, 취미, 경력 검색</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> 사원<span class=\"token punctuation\">.</span>이름<span class=\"token punctuation\">,</span> 사원<span class=\"token punctuation\">.</span>부서<span class=\"token punctuation\">,</span> 여가활동<span class=\"token punctuation\">.</span>취미<span class=\"token punctuation\">,</span> 여가활동<span class=\"token punctuation\">.</span>경력\n<span class=\"token keyword\">FROM</span> 사원<span class=\"token punctuation\">,</span> 여가활동\n<span class=\"token keyword\">WHERE</span> 여가활동<span class=\"token punctuation\">.</span>경력 <span class=\"token operator\">>=</span> <span class=\"token number\">10</span> <span class=\"token operator\">AND</span> 사원<span class=\"token punctuation\">.</span>이름 <span class=\"token operator\">=</span> 여가활동<span class=\"token punctuation\">.</span>이름<span class=\"token punctuation\">;</span>\n\n이름   부서  취미  경력\n<span class=\"token comment\">---------------------------</span>\n김선달  편집 당구 <span class=\"token number\">10</span>\n일지매  기획 태껸 <span class=\"token number\">15</span></code></pre></div>\n<h1 id=\"5-dml---select2\" style=\"position:relative;\"><a href=\"#5-dml---select2\" aria-label=\"5 dml   select2 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>5. DML - SELECT(2)</h1>\n<table>\n<thead>\n<tr>\n<th>그룹 함수명</th>\n<th>속성</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>COUNT(속성명)</td>\n<td>그룹별 튜플 수</td>\n</tr>\n<tr>\n<td>MAX(속성명)</td>\n<td>그룹별 최대값</td>\n</tr>\n<tr>\n<td>MIN(속성명)</td>\n<td>그룹별 최소값</td>\n</tr>\n<tr>\n<td>SUM(속성명)</td>\n<td>그룹별 합계</td>\n</tr>\n<tr>\n<td>AVG(속성명)</td>\n<td>그룹별 평균</td>\n</tr>\n</tbody>\n</table>\n<ul>\n<li><code class=\"language-text\">HAVING절</code> : GROUP BY와 함께 사용, 그룹에 대한 조건 지정</li>\n<li>\n<p><code class=\"language-text\">ORDER BY절</code> : 특정 속성을 기준으로 정렬하여 검색할 때 사용</p>\n<ul>\n<li>속성명 : 정렬의 기준이 되는 속성명을 기술</li>\n<li><em>ASC</em> : 오름차순. 생략하면 오름차순으로 지정</li>\n<li><em>DESC</em> : 내림차순</li>\n</ul>\n</li>\n<li>WINDOW 함수 이용 검색</li>\n<li>상여금 테이블에서 ‘상여내역’별로 ‘상여금’에 대한 일련 번호 구하기</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> 상여내역<span class=\"token punctuation\">,</span> 상여금\n\tROW_NUMBER<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">OVER</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">PARTITION</span> <span class=\"token keyword\">BY</span> 상여내역 <span class=\"token keyword\">ORDER</span> <span class=\"token keyword\">BY</span> 상여급 <span class=\"token keyword\">DESC</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">AS</span> <span class=\"token keyword\">NO</span>\n<span class=\"token keyword\">FROM</span> 상여금<span class=\"token punctuation\">;</span>\n\n상여내역   상여금         <span class=\"token keyword\">NO</span>\n<span class=\"token comment\">---------------------------</span>\n야간근무    <span class=\"token number\">120</span>         <span class=\"token number\">1</span>\n야간근무 \t<span class=\"token number\">80</span>          <span class=\"token number\">2</span>\n야간근무 \t<span class=\"token number\">80</span>          <span class=\"token number\">2</span>\n야간근무 \t<span class=\"token number\">50</span>          <span class=\"token number\">4</span>\n연장근무    <span class=\"token number\">100</span>         <span class=\"token number\">1</span>\n연장근무    <span class=\"token number\">100</span>         <span class=\"token number\">2</span>\n연장근무    <span class=\"token number\">40</span>          <span class=\"token number\">3</span>\n연장근무    <span class=\"token number\">30</span>          <span class=\"token number\">4</span>\n특별근무    <span class=\"token number\">90</span>          <span class=\"token number\">1</span>\n특별근무    <span class=\"token number\">90</span>          <span class=\"token number\">2</span>\n특별근무    <span class=\"token number\">90</span>          <span class=\"token number\">3</span>\n특별근무    <span class=\"token number\">80</span>          <span class=\"token number\">4</span></code></pre></div>\n<ul>\n<li>상여금 테이블에서 ‘상여내역’별로 ‘상여금’에 대한 순위를 구하기</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> 상여내역<span class=\"token punctuation\">,</span> 상여금<span class=\"token punctuation\">,</span> RANK<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">OVER</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">PARTITION</span> <span class=\"token keyword\">BY</span> 상여내역 <span class=\"token keyword\">ORDER</span> <span class=\"token keyword\">BY</span> 상여금 <span class=\"token keyword\">DESC</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">AS</span> 상여금순위\n<span class=\"token keyword\">FROM</span> 상여금<span class=\"token punctuation\">;</span>\n\n상여내역    상여금    상여순위\n<span class=\"token comment\">--------- ---------- ----------</span>\n야간근무   <span class=\"token number\">120</span>          <span class=\"token number\">1</span>\n야간근무    <span class=\"token number\">80</span>          <span class=\"token number\">2</span>\n야간근무    <span class=\"token number\">80</span>          <span class=\"token number\">2</span>\n야간근무    <span class=\"token number\">50</span>          <span class=\"token number\">4</span>\n연장근무   <span class=\"token number\">100</span>          <span class=\"token number\">1</span>\n연장근무   <span class=\"token number\">100</span>          <span class=\"token number\">1</span>\n연장근무    <span class=\"token number\">40</span>          <span class=\"token number\">3</span>\n연장근무    <span class=\"token number\">30</span>          <span class=\"token number\">4</span>\n특별근무    <span class=\"token number\">90</span>          <span class=\"token number\">1</span>\n특별근무    <span class=\"token number\">90</span>          <span class=\"token number\">1</span>\n특별근무    <span class=\"token number\">90</span>          <span class=\"token number\">1</span>\n특별근무    <span class=\"token number\">80</span>          <span class=\"token number\">4</span></code></pre></div>\n<ul>\n<li>그룹 지정 검색</li>\n<li>상여금 테이블에서 ‘부서’별 ‘상여금’의 평균</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> 부서<span class=\"token punctuation\">,</span> <span class=\"token function\">AVG</span><span class=\"token punctuation\">(</span>상여금<span class=\"token punctuation\">)</span> <span class=\"token keyword\">AS</span> 평균\n<span class=\"token keyword\">FROM</span> 상여금\n<span class=\"token keyword\">GROUP</span> <span class=\"token keyword\">BY</span> 부서<span class=\"token punctuation\">;</span>\n\n부서              평균\n<span class=\"token comment\">-------------------------</span>\n기획            <span class=\"token number\">102.5</span>\n인터넷             <span class=\"token number\">70</span>\n편집               <span class=\"token number\">66</span></code></pre></div>\n<ul>\n<li>상여금 테이블에서 ‘부서’별 튜플 수</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> 부서<span class=\"token punctuation\">,</span> <span class=\"token function\">COUNT</span><span class=\"token punctuation\">(</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">AS</span> 사원수\n<span class=\"token keyword\">FROM</span> 상여금\n<span class=\"token keyword\">GROUP</span> <span class=\"token keyword\">BY</span> 부서<span class=\"token punctuation\">;</span>\n\n부서         사원수\n<span class=\"token comment\">-------------------</span>\n기획         <span class=\"token number\">4</span>\n인터넷       <span class=\"token number\">3</span>\n편집         <span class=\"token number\">5</span></code></pre></div>\n<ul>\n<li>상여금 테이블에서 ‘상여금’이 100 이상인 사원이 2명 이상인 ‘부서’의 튜플 수</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> 부서<span class=\"token punctuation\">,</span> <span class=\"token function\">COUNT</span><span class=\"token punctuation\">(</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">AS</span> 사원수\n<span class=\"token keyword\">FROM</span> 상여금\n<span class=\"token keyword\">WHERE</span> 상여금 <span class=\"token operator\">>=</span> <span class=\"token number\">100</span>\n<span class=\"token keyword\">GROUP</span> <span class=\"token keyword\">BY</span> 부서\n<span class=\"token keyword\">HAVING</span> <span class=\"token function\">COUNT</span><span class=\"token punctuation\">(</span><span class=\"token operator\">*</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">>=</span> <span class=\"token number\">2</span>\n\n부서         사원수\n<span class=\"token comment\">-------------------</span>\n기획         <span class=\"token number\">3</span></code></pre></div>\n<ul>\n<li>상여금 테이블의 ‘부서’, ‘상여내역’, 그리고 ‘상여금’ 에 대해 부서별 상여내역별 소계와 전체합계(ROLLUP)</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> 부서<span class=\"token punctuation\">,</span> 상여내역<span class=\"token punctuation\">,</span> <span class=\"token function\">SUM</span><span class=\"token punctuation\">(</span>상여금<span class=\"token punctuation\">)</span> <span class=\"token keyword\">AS</span> 상여금합계\n<span class=\"token keyword\">FROM</span> 상여금\n<span class=\"token keyword\">GROUP</span> <span class=\"token keyword\">BY</span> ROLLUP<span class=\"token punctuation\">(</span>부서<span class=\"token punctuation\">,</span> 상여내역<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n\n부서       상여내역    상여금합계\n<span class=\"token comment\">----------------------------------</span>\n기획     야간근무        <span class=\"token number\">120</span>\n기획     연장근무        <span class=\"token number\">200</span>\n기획     특별근무         <span class=\"token number\">90</span>\n기획                    <span class=\"token number\">410</span>\n편집     야간근무        <span class=\"token number\">210</span>\n편집     연장근무         <span class=\"token number\">40</span>\n편집     특별근무         <span class=\"token number\">80</span>\n편집                    <span class=\"token number\">330</span>\n인터넷   연장근무         <span class=\"token number\">30</span>\n인터넷   특별근무        <span class=\"token number\">180</span>\n인터넷                  <span class=\"token number\">210</span>\n                       <span class=\"token number\">950</span></code></pre></div>\n<ul>\n<li>상여금 테이블의 ‘부서’, ‘상여내역’, 그리고 ‘상여금’ 에 대해 부서별 상여내역별 소계와 전체합계(CUBE)</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> 부서<span class=\"token punctuation\">,</span> 상여내역<span class=\"token punctuation\">,</span> <span class=\"token function\">SUM</span><span class=\"token punctuation\">(</span>상여금<span class=\"token punctuation\">)</span> <span class=\"token keyword\">AS</span> 상여금합계\n<span class=\"token keyword\">FROM</span> 상여금\n<span class=\"token keyword\">GROUP</span> <span class=\"token keyword\">BY</span> CUBE<span class=\"token punctuation\">(</span>부서<span class=\"token punctuation\">,</span> 상여내역<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n \n\n부서       상여내역    상여금합계\n<span class=\"token comment\">---------------------------------</span>\n                        <span class=\"token number\">950</span>\n         야간근무        <span class=\"token number\">330</span>\n         연장근무        <span class=\"token number\">270</span>\n         특별근무        <span class=\"token number\">350</span>\n기획                     <span class=\"token number\">410</span>\n기획     야간근무        <span class=\"token number\">120</span>\n기획     연장근무        <span class=\"token number\">200</span>\n기획     특별근무         <span class=\"token number\">90</span>\n편집                     <span class=\"token number\">330</span>\n편집     야간근무        <span class=\"token number\">210</span>\n편집     연장근무         <span class=\"token number\">40</span>\n편집     특별근무         <span class=\"token number\">80</span>\n인터넷                   <span class=\"token number\">210</span>\n인터넷   연장근무         <span class=\"token number\">30</span>\n인터넷   특별근무        <span class=\"token number\">180</span></code></pre></div>\n<h1 id=\"6-dml---join\" style=\"position:relative;\"><a href=\"#6-dml---join\" aria-label=\"6 dml   join permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>6. DML - JOIN</h1>\n<hr>\n<ul>\n<li>2개의 테이블에 대해 연관된 튜플들을 결합하여, 하나의 새로운 릴레이션을 반환</li>\n<li>JOIN은 일반적으로 FROM절에 기술하지만, 릴레이션이 사용되는 어느 곳에서나 사용 가능</li>\n<li><code class=\"language-text\">INNER JOIN</code> : 가장 일반적인 JOIN의 형태로, 관계가 설정된 두 테이 블에서 조인된 필드가 일치하는 행만을 표시</li>\n<li>WHERE절을 이용한 표기 형식</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> <span class=\"token punctuation\">[</span>테이블명<span class=\"token number\">1.</span><span class=\"token punctuation\">]</span>속성명<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span>테이블명<span class=\"token number\">2.</span><span class=\"token punctuation\">]</span>속성명<span class=\"token punctuation\">,</span> …\n<span class=\"token keyword\">FROM</span> 테이블명<span class=\"token number\">1</span><span class=\"token punctuation\">,</span> 테이블명<span class=\"token number\">2</span><span class=\"token punctuation\">,</span> …\n<span class=\"token keyword\">WHERE</span> 테이블명<span class=\"token number\">1.</span>속성명 <span class=\"token operator\">=</span> 테이블명<span class=\"token number\">2.</span>속성명<span class=\"token punctuation\">;</span></code></pre></div>\n<ul>\n<li>NATURAL JOIN을 이용한 표기 형식</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> <span class=\"token punctuation\">[</span>테이블명<span class=\"token number\">1.</span><span class=\"token punctuation\">]</span>속성명<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span>테이블명<span class=\"token number\">2.</span><span class=\"token punctuation\">]</span>속성명<span class=\"token punctuation\">,</span> …\n<span class=\"token keyword\">FROM</span> 테이블명<span class=\"token number\">1</span> <span class=\"token keyword\">JOIN</span> 테이블명<span class=\"token number\">2</span> <span class=\"token keyword\">USING</span><span class=\"token punctuation\">(</span>속성명<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<h1 id=\"7-dml---outer-join\" style=\"position:relative;\"><a href=\"#7-dml---outer-join\" aria-label=\"7 dml   outer join permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>7. DML - OUTER JOIN</h1>\n<hr>\n<ul>\n<li>릴레이션에서 JOIN 조건에 만족하지 않는 튜플도 결과로 출력하기 위한 JOIN 방법</li>\n<li><code class=\"language-text\">LEFT OUTER JOIN</code> : INNER JOIN의 결과를 구한 후, 우측 항 릴레이션의 어떤 튜플과도 맞지 않는 좌측 항의 릴레이션에 있는 튜플들에 NULL 값을 붙여서 INNER JOIN의 결과에 추가</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> <span class=\"token punctuation\">[</span>테이블명<span class=\"token number\">1.</span><span class=\"token punctuation\">]</span> 속성명<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span>테이블명<span class=\"token number\">2.</span><span class=\"token punctuation\">]</span> 속성명<span class=\"token punctuation\">,</span> …\n<span class=\"token keyword\">FROM</span> 테이블명<span class=\"token number\">1</span> <span class=\"token keyword\">LEFT</span> <span class=\"token keyword\">OUTER</span> <span class=\"token keyword\">JOIN</span> 테이블명<span class=\"token number\">2</span>\n<span class=\"token keyword\">ON</span> 테이블명<span class=\"token number\">1.</span>속성명 <span class=\"token operator\">=</span> 테이블명<span class=\"token number\">2.</span>속성명<span class=\"token punctuation\">;</span></code></pre></div>\n<ul>\n<li><code class=\"language-text\">RIGHT OUTER JOIN</code> : INNER JOIN의 결과를 구한 후, 좌측 항 릴레이션의 어떤 튜플과도 맞지 않는 우측 항의 릴레이션에 있는 튜플들에 NULL 값을 붙여서 INNER JOIN의 결과에 추가</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> <span class=\"token punctuation\">[</span>테이블명<span class=\"token number\">1.</span><span class=\"token punctuation\">]</span>속성명<span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span>테이블명<span class=\"token number\">2.</span><span class=\"token punctuation\">]</span>속성명<span class=\"token punctuation\">,</span> …\n<span class=\"token keyword\">FROM</span> 테이블명<span class=\"token number\">1</span> <span class=\"token keyword\">RIGHT</span> <span class=\"token keyword\">OUTER</span> <span class=\"token keyword\">JOIN</span> 테이블명<span class=\"token number\">2</span>\n<span class=\"token keyword\">ON</span> 테이블명<span class=\"token number\">1.</span>속성명 <span class=\"token operator\">=</span> 테이블명<span class=\"token number\">2.</span>속성명<span class=\"token punctuation\">;</span></code></pre></div>\n<h1 id=\"8-프로시저procedure\" style=\"position:relative;\"><a href=\"#8-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80procedure\" aria-label=\"8 프로시저procedure permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>8. 프로시저(Procedure)</h1>\n<hr>\n<ul>\n<li>절차형 SQL을 활용하여 특정 기능을 수행하는 일종의 트랜잭션 언어, 호출을 통해 실행되어 미리 저장해 놓은 SQL 작업을 수행</li>\n<li>시스템의 일일 마감 작업, 일괄 작업 등에 주로 사용</li>\n<li><em>이벤트 : (DECLARE / BIGIN / END)</em></li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"plsql\"><pre class=\"language-plsql\"><code class=\"language-plsql\"><span class=\"token keyword\">CREATE</span> <span class=\"token keyword\">TABLE</span> 대학교\n<span class=\"token punctuation\">(</span> \n    학교 <span class=\"token keyword\">VARCHAR2</span><span class=\"token punctuation\">(</span><span class=\"token number\">30</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n    성적 <span class=\"token keyword\">NUMBER</span><span class=\"token punctuation\">(</span><span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n    학과 <span class=\"token keyword\">VARCHAR2</span><span class=\"token punctuation\">(</span><span class=\"token number\">30</span><span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">commit</span><span class=\"token punctuation\">;</span></code></pre></div>\n<ul>\n<li>\n<p>기본 형식</p>\n<ul>\n<li><code class=\"language-text\">DECLARE</code> :프로시저 명칭, 변수, 인수, 데이터 타입 정의</li>\n<li><code class=\"language-text\">BEGIN / END</code> : 프로시저의 시작과 종료</li>\n<li><code class=\"language-text\">CONTROL</code> : 조건문 / 반복문 삽입되어 순차처리</li>\n<li><code class=\"language-text\">SQL</code> : DML, DCL이 삽입되어 데이터 관리를 위한 CRUD 수행</li>\n<li><code class=\"language-text\">EXCEPTION</code> : BEGIN ~ END 안의 구문 실행 시 예외가 발생하면 이를 처리하는 방법 정의</li>\n<li><code class=\"language-text\">TRANSACTION</code> : 수행된 데이터 작업들을 DB에 적용할지 취소할지 결정</li>\n</ul>\n</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">DECLARE</span> <span class=\"token punctuation\">(</span>필수<span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">BEGIN</span> <span class=\"token punctuation\">(</span>필수<span class=\"token punctuation\">)</span>\n  <span class=\"token operator\">*</span> CONTROL\n  <span class=\"token operator\">*</span> <span class=\"token keyword\">SQL</span>\n  <span class=\"token operator\">*</span> EXCEPTION\n  <span class=\"token operator\">*</span> <span class=\"token keyword\">TRANSACTION</span>\n<span class=\"token keyword\">END</span> <span class=\"token punctuation\">(</span>필수<span class=\"token punctuation\">)</span></code></pre></div>\n<ul>\n<li>생성</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">CREATE</span> <span class=\"token operator\">OR</span> <span class=\"token keyword\">REPLACE</span> <span class=\"token keyword\">PROCEDURE</span> EX_PROC<span class=\"token punctuation\">(</span>\n    P_성적 <span class=\"token operator\">IN</span> NUMBER<span class=\"token punctuation\">,</span>\n    P_학과 <span class=\"token operator\">IN</span> VARCHAR2\n<span class=\"token punctuation\">)</span>\n<span class=\"token operator\">IS</span> \nP_학교 VARCHAR2<span class=\"token punctuation\">(</span><span class=\"token number\">30</span><span class=\"token punctuation\">)</span> :<span class=\"token operator\">=</span> <span class=\"token string\">'서울대학교'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">BEGIN</span>\n    <span class=\"token keyword\">INSERT</span> <span class=\"token keyword\">INTO</span> 대학교<span class=\"token punctuation\">(</span>학교<span class=\"token punctuation\">,</span> 성적<span class=\"token punctuation\">,</span> 학과<span class=\"token punctuation\">)</span> <span class=\"token keyword\">VALUES</span> <span class=\"token punctuation\">(</span>P_학교<span class=\"token punctuation\">,</span> P_성적<span class=\"token punctuation\">,</span> P_학과<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    EXCEPTION\n        <span class=\"token keyword\">WHEN</span> PROGRAM_ERROR <span class=\"token keyword\">THEN</span>\n            <span class=\"token keyword\">ROLLBACK</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">COMMIT</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">END</span> EX_PROC<span class=\"token punctuation\">;</span></code></pre></div>\n<ul>\n<li>실행</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">EXECUTE</span> EX_PROC<span class=\"token punctuation\">(</span><span class=\"token number\">500</span><span class=\"token punctuation\">,</span><span class=\"token string\">'물리학과'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">EXEC</span> EX_PROC<span class=\"token punctuation\">(</span><span class=\"token number\">500</span><span class=\"token punctuation\">,</span><span class=\"token string\">'물리학과'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">CALL</span> EX_PROC<span class=\"token punctuation\">(</span><span class=\"token number\">500</span><span class=\"token punctuation\">,</span><span class=\"token string\">'물리학과'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<ul>\n<li>제거</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">DROP</span> <span class=\"token keyword\">PROCEDURE</span> EX_PROC<span class=\"token punctuation\">;</span></code></pre></div>\n<h1 id=\"9-트리거trigger\" style=\"position:relative;\"><a href=\"#9-%ED%8A%B8%EB%A6%AC%EA%B1%B0trigger\" aria-label=\"9 트리거trigger permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>9. 트리거(Trigger)</h1>\n<hr>\n<ul>\n<li>데이터베이스 시스템에서 데이터의 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL</li>\n<li>데이터베이스에 저장되며, 데이터 변경 및 무결성 유지, 로그 메시지 출력 등의 목적으로 사용</li>\n<li><em>이벤트 : (DECLARE/EVENT/BEGIN/END)</em></li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">DECLARE</span> <span class=\"token punctuation\">(</span>필수<span class=\"token punctuation\">)</span>\nEVENT <span class=\"token punctuation\">(</span>필수<span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">BEGIN</span> <span class=\"token punctuation\">(</span>필수<span class=\"token punctuation\">)</span>\n  <span class=\"token operator\">*</span> CONTROL\n  <span class=\"token operator\">*</span> <span class=\"token keyword\">SQL</span>\n  <span class=\"token operator\">*</span> EXCEPTION\n<span class=\"token keyword\">END</span> <span class=\"token punctuation\">(</span>필수<span class=\"token punctuation\">)</span></code></pre></div>\n<ul>\n<li>생성</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">CREATE</span> <span class=\"token keyword\">TRIGGER</span> EX_TRIG BEFORE <span class=\"token keyword\">INSERT</span> <span class=\"token keyword\">ON</span> 대학교\nREFERENCING NEW <span class=\"token keyword\">AS</span> NEW_TABLE\n<span class=\"token keyword\">FOR EACH ROW</span>\n<span class=\"token keyword\">WHEN</span> <span class=\"token punctuation\">(</span>NEW_TABLE<span class=\"token punctuation\">.</span>학년 <span class=\"token operator\">IS</span> <span class=\"token boolean\">NULL</span><span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">BEGIN</span>\n        :NEW_TABLE<span class=\"token punctuation\">.</span>학년 :<span class=\"token operator\">=</span> <span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">END</span><span class=\"token punctuation\">;</span></code></pre></div>\n<ul>\n<li>제거</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">DROP</span> <span class=\"token keyword\">TRIGGER</span> EX_TRIG<span class=\"token punctuation\">;</span></code></pre></div>\n<h1 id=\"10-사용자-정의-함수\" style=\"position:relative;\"><a href=\"#10-%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%A0%95%EC%9D%98-%ED%95%A8%EC%88%98\" aria-label=\"10 사용자 정의 함수 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>10. 사용자 정의 함수</h1>\n<hr>\n<ul>\n<li>프로시저와 유사하게 SQL을 사용하여 일련의 작업을 연속적으로 처리하며, 종료 시 처리 결과를 단일 값으로 반환하는 절차형 SQL</li>\n<li>데이터베이스에 저장되어 DML문의 호출에 의해 실행</li>\n<li>예약어 RETURN을 통해 값을 반환하기 때문에 출력 파라미터가 없음</li>\n<li><em>이벤트 : (DECLARE/BEGIN/END)</em></li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">DECLARE</span> <span class=\"token punctuation\">(</span>필수<span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">BEGIN</span> <span class=\"token punctuation\">(</span>필수<span class=\"token punctuation\">)</span>\n  <span class=\"token operator\">*</span> CONTROL\n  <span class=\"token operator\">*</span> <span class=\"token keyword\">SQL</span>\n  <span class=\"token operator\">*</span> EXCEPTION\n  <span class=\"token operator\">*</span> <span class=\"token keyword\">RETURN</span> <span class=\"token punctuation\">(</span>필수<span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">END</span> <span class=\"token punctuation\">(</span>필수<span class=\"token punctuation\">)</span></code></pre></div>\n<ul>\n<li>생성</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">CREATE</span> <span class=\"token punctuation\">[</span><span class=\"token operator\">OR</span> <span class=\"token keyword\">REPLACE</span><span class=\"token punctuation\">]</span> <span class=\"token keyword\">FUNCTION</span> 사용자 정의 함수명<span class=\"token punctuation\">(</span>파라미터<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">[</span>지역변수 선언<span class=\"token punctuation\">]</span>\n<span class=\"token keyword\">BEGIN</span>\n  사용자 정의 함수 BODY<span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">RETURN</span> 반환값<span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">END</span><span class=\"token punctuation\">;</span></code></pre></div>\n<ul>\n<li>실행</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">SELECT</span> 함수명 <span class=\"token keyword\">FROM</span> 테이블명<span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">INSERT</span> <span class=\"token keyword\">INTO</span> 테이블명<span class=\"token punctuation\">(</span>속성명<span class=\"token punctuation\">)</span> <span class=\"token keyword\">VALUES</span> <span class=\"token punctuation\">(</span>함수명<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">DELETE</span> <span class=\"token keyword\">FROM</span> 테이블명 <span class=\"token keyword\">WHERE</span> 속성명 <span class=\"token operator\">=</span> 함수명<span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">UPDATE</span> 테이블명 <span class=\"token keyword\">SET</span> 속성명 <span class=\"token operator\">=</span> 함수명<span class=\"token punctuation\">;</span></code></pre></div>\n<ul>\n<li>제거</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sql\"><pre class=\"language-sql\"><code class=\"language-sql\"><span class=\"token keyword\">DROP</span> <span class=\"token keyword\">FUNCTION</span> 함수명<span class=\"token punctuation\">;</span></code></pre></div>\n<h1 id=\"11-제어문\" style=\"position:relative;\"><a href=\"#11-%EC%A0%9C%EC%96%B4%EB%AC%B8\" aria-label=\"11 제어문 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>11. 제어문</h1>\n<hr>\n<p>절차형 SQL은 SQL 명령어가 서술된 순서에 따라 위에서 아래로 차례대로 실행되는데, 이러한 진행 순서를 변경하기 위해 사용하는 명령문</p>\n<ul>\n<li><code class=\"language-text\">IF문</code> : 조건에 따라 실행할 문장을 달리하는 제어문</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"plsql\"><pre class=\"language-plsql\"><code class=\"language-plsql\"> <span class=\"token comment\">-- IF 단일</span>\n<span class=\"token keyword\">DECLARE</span> \n    X <span class=\"token keyword\">INT</span> <span class=\"token operator\">:=</span> <span class=\"token number\">20</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">BEGIN</span>\n    <span class=\"token keyword\">IF</span> X <span class=\"token operator\">></span> <span class=\"token number\">10</span> <span class=\"token keyword\">THEN</span>\n        DBMS_OUTPUT<span class=\"token punctuation\">.</span>PUT_LINE<span class=\"token punctuation\">(</span><span class=\"token string\">'TRUE'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">END</span> <span class=\"token keyword\">IF</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">END</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">-- TRUE</span>\n\n<span class=\"token comment\">-- IF / ELSE</span>\n<span class=\"token keyword\">DECLARE</span> \n    X <span class=\"token keyword\">INT</span> <span class=\"token operator\">:=</span> <span class=\"token number\">10</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">BEGIN</span>\n    <span class=\"token keyword\">IF</span> X <span class=\"token operator\">></span> <span class=\"token number\">10</span> <span class=\"token keyword\">THEN</span>\n        DBMS_OUTPUT<span class=\"token punctuation\">.</span>PUT_LINE<span class=\"token punctuation\">(</span><span class=\"token string\">'TRUE'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">ELSE</span>\n        DBMS_OUTPUT<span class=\"token punctuation\">.</span>PUT_LINE<span class=\"token punctuation\">(</span><span class=\"token string\">'FALSE'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>        \n    <span class=\"token keyword\">END</span> <span class=\"token keyword\">IF</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">END</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">-- FALSE</span>\n\n<span class=\"token comment\">-- IF / ELSIF / ELSE</span>\n\n<span class=\"token keyword\">DECLARE</span> \n    X <span class=\"token keyword\">INT</span> <span class=\"token operator\">:=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">BEGIN</span>\n    <span class=\"token keyword\">IF</span> X <span class=\"token operator\">></span> <span class=\"token number\">20</span> <span class=\"token keyword\">THEN</span>\n        DBMS_OUTPUT<span class=\"token punctuation\">.</span>PUT_LINE<span class=\"token punctuation\">(</span><span class=\"token string\">'TRUE20'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    ELSIF X <span class=\"token operator\">></span> <span class=\"token number\">10</span> <span class=\"token keyword\">THEN</span>\n        DBMS_OUTPUT<span class=\"token punctuation\">.</span>PUT_LINE<span class=\"token punctuation\">(</span><span class=\"token string\">'TRUE10'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>   \n    <span class=\"token keyword\">ELSE</span>\n        DBMS_OUTPUT<span class=\"token punctuation\">.</span>PUT_LINE<span class=\"token punctuation\">(</span><span class=\"token string\">'FALSE'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>        \n    <span class=\"token keyword\">END</span> <span class=\"token keyword\">IF</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">END</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">-- FALSE</span></code></pre></div>\n<ul>\n<li><code class=\"language-text\">LOOP</code> : 조건에 따라 실행할 문장을 수행하는 제어문</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"plsql\"><pre class=\"language-plsql\"><code class=\"language-plsql\"><span class=\"token keyword\">DECLARE</span>\n    I <span class=\"token keyword\">INT</span> <span class=\"token operator\">:=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n    I_SUM <span class=\"token keyword\">INT</span> <span class=\"token operator\">:=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">BEGIN</span>\n    <span class=\"token keyword\">LOOP</span>\n         I <span class=\"token operator\">:=</span> I<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n         I_SUM <span class=\"token operator\">:=</span>I_SUM <span class=\"token operator\">+</span> I<span class=\"token punctuation\">;</span>\n         <span class=\"token keyword\">EXIT</span> <span class=\"token keyword\">WHEN</span> I <span class=\"token operator\">>=</span> <span class=\"token number\">10</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">END</span> <span class=\"token keyword\">LOOP</span><span class=\"token punctuation\">;</span>\n    DBMS_OUTPUT<span class=\"token punctuation\">.</span>PUT_LINE<span class=\"token punctuation\">(</span>I_SUM<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">END</span><span class=\"token punctuation\">;</span>\n<span class=\"token comment\">-- 55</span></code></pre></div>\n<ul>\n<li><code class=\"language-text\">FOR LOOP</code> : 초기값부터 종료값까지 증가하면서 실행할 문장 반복 수행</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"plsql\"><pre class=\"language-plsql\"><code class=\"language-plsql\"><span class=\"token keyword\">DECLARE</span>\n    I_SUM <span class=\"token keyword\">INT</span> <span class=\"token operator\">:=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">BEGIN</span>\n    <span class=\"token keyword\">FOR</span> I <span class=\"token operator\">IN</span> <span class=\"token number\">1.</span><span class=\"token number\">.10</span>\n    <span class=\"token keyword\">LOOP</span>\n        I_SUM <span class=\"token operator\">:=</span> I_SUM <span class=\"token operator\">+</span> I<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">END</span> <span class=\"token keyword\">LOOP</span><span class=\"token punctuation\">;</span>\n    DBMS_OUTPUT<span class=\"token punctuation\">.</span>PUT_LINE<span class=\"token punctuation\">(</span>I_SUM<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">END</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">-- 55</span></code></pre></div>\n<ul>\n<li><code class=\"language-text\">WHILE LOOP</code> : 조건이 참인 동안 실행할 문장을 반복 수행</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"plsql\"><pre class=\"language-plsql\"><code class=\"language-plsql\"><span class=\"token keyword\">DECLARE</span>\n\tI <span class=\"token keyword\">INT</span> <span class=\"token operator\">:=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n\tI_SUM <span class=\"token keyword\">INT</span> <span class=\"token operator\">:=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">BEGIN</span>\n    <span class=\"token keyword\">WHILE</span> I <span class=\"token operator\">&lt;</span> <span class=\"token number\">10</span>\n    <span class=\"token keyword\">LOOP</span>\n        I <span class=\"token operator\">:=</span> I<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n        I_SUM <span class=\"token operator\">:=</span> I_SUM <span class=\"token operator\">+</span> I<span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">END</span> <span class=\"token keyword\">LOOP</span><span class=\"token punctuation\">;</span>\n    DBMS_OUTPUT<span class=\"token punctuation\">.</span>PUT_LINE<span class=\"token punctuation\">(</span>I_SUM<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">END</span><span class=\"token punctuation\">;</span></code></pre></div>\n<ul>\n<li><code class=\"language-text\">CONTINUE</code> : 반복문의 실행을 제어하기 위해 사용하는 예약어</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"plsql\"><pre class=\"language-plsql\"><code class=\"language-plsql\"><span class=\"token keyword\">BEGIN</span>\n    <span class=\"token keyword\">FOR</span> I <span class=\"token operator\">IN</span> <span class=\"token number\">1.</span><span class=\"token number\">.3</span> <span class=\"token keyword\">LOOP</span>\n        DBMS_OUTPUT<span class=\"token punctuation\">.</span>PUT_LINE<span class=\"token punctuation\">(</span>I<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        DBMS_OUTPUT<span class=\"token punctuation\">.</span>PUT_LINE<span class=\"token punctuation\">(</span><span class=\"token string\">'HELLO'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        <span class=\"token keyword\">CONTINUE</span> <span class=\"token keyword\">WHEN</span> I <span class=\"token operator\">=</span> <span class=\"token number\">2</span><span class=\"token punctuation\">;</span>\n        DBMS_OUTPUT<span class=\"token punctuation\">.</span>PUT_LINE<span class=\"token punctuation\">(</span><span class=\"token string\">'WORLD'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">END</span> <span class=\"token keyword\">LOOP</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">END</span><span class=\"token punctuation\">;</span>\n\n\n<span class=\"token number\">1</span>\nHELLO\nWORLD\n<span class=\"token number\">2</span>\nHELLO\n<span class=\"token number\">3</span>\nHELLO\nWORLD</code></pre></div>\n<h1 id=\"12-sql---커서cursor\" style=\"position:relative;\"><a href=\"#12-sql---%EC%BB%A4%EC%84%9Ccursor\" aria-label=\"12 sql   커서cursor permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>12. SQL - 커서(Cursor)</h1>\n<hr>\n<ul>\n<li>커서 : 쿼리문의 처리 결과가 저장되어 있는 메모리 공간을 가리키는 포인터. 커서의 수행은 열기, 패치, 닫기의 세 단계로 진행</li>\n<li>\n<p><code class=\"language-text\">묵시적 커서</code> : 내부에서 자동으로 생성되어 사용, DBMS 자체적으로 열리고(Open) 패치(Fetch)되어 사용이 끝나면 닫히지만(Close) 커서의 속성을 조회하여 사용된 쿼리 정보를 열람하는 것이 가능</p>\n<ul>\n<li><code class=\"language-text\">SQL%FOUND</code>: 쿼리 수행의 결과로 패치(Fetch)된 튜플 수가 1개 이상이면 TRUE</li>\n<li><code class=\"language-text\">SQL%NOTFOUND</code> : 쿼리 수행의 결과로 패치(Fetch)된 튜플 수가 0개이면 TRUE</li>\n<li><code class=\"language-text\">SQL%ROWCOUNT</code> : 쿼리 수행의 결과로 패치(Fetch)된 튜플 수를 반환</li>\n<li><code class=\"language-text\">SQL%ISOPEN</code> : 커서가 열린(Open) 상태이면 TRUE , 묵시적 커서는 자동으로 생성된 후 자동으로 닫히기 때문에 항상 FALSE</li>\n</ul>\n</li>\n<li>\n<p><code class=\"language-text\">명시적 커서</code> : 사용자가 직접 정의해서 사용</p>\n<ul>\n<li>사용자가 직접 정의해서 사용하는 커서로, 주로 절차형 SQL에서 SELECT문의 결과로 반환되는 여러 튜플들을 제어하기 위해 사용</li>\n<li>커서는 기본적으로 열기 ,패치, 닫기 순으로 이루어지며, 명시적 커서로 사용하기 위해서는 열기 전에 선언을 해야함</li>\n</ul>\n</li>\n</ul>","tableOfContents":"<ul>\n<li><a href=\"/%5B2020%5D%20%EC%A0%95%EB%B3%B4%20%EC%B2%98%EB%A6%AC%20%EA%B8%B0%EC%82%AC%20%EC%8B%A4%EA%B8%B0%208-SQL%20%EC%9D%91%EC%9A%A9/#1-ddl\">1. DDL</a></li>\n<li><a href=\"/%5B2020%5D%20%EC%A0%95%EB%B3%B4%20%EC%B2%98%EB%A6%AC%20%EA%B8%B0%EC%82%AC%20%EC%8B%A4%EA%B8%B0%208-SQL%20%EC%9D%91%EC%9A%A9/#2-dcl\">2. DCL</a></li>\n<li><a href=\"/%5B2020%5D%20%EC%A0%95%EB%B3%B4%20%EC%B2%98%EB%A6%AC%20%EA%B8%B0%EC%82%AC%20%EC%8B%A4%EA%B8%B0%208-SQL%20%EC%9D%91%EC%9A%A9/#3-dml\">3. DML</a></li>\n<li><a href=\"/%5B2020%5D%20%EC%A0%95%EB%B3%B4%20%EC%B2%98%EB%A6%AC%20%EA%B8%B0%EC%82%AC%20%EC%8B%A4%EA%B8%B0%208-SQL%20%EC%9D%91%EC%9A%A9/#4-dml---select1\">4. DML - SELECT(1)</a></li>\n<li><a href=\"/%5B2020%5D%20%EC%A0%95%EB%B3%B4%20%EC%B2%98%EB%A6%AC%20%EA%B8%B0%EC%82%AC%20%EC%8B%A4%EA%B8%B0%208-SQL%20%EC%9D%91%EC%9A%A9/#5-dml---select2\">5. DML - SELECT(2)</a></li>\n<li><a href=\"/%5B2020%5D%20%EC%A0%95%EB%B3%B4%20%EC%B2%98%EB%A6%AC%20%EA%B8%B0%EC%82%AC%20%EC%8B%A4%EA%B8%B0%208-SQL%20%EC%9D%91%EC%9A%A9/#6-dml---join\">6. DML - JOIN</a></li>\n<li><a href=\"/%5B2020%5D%20%EC%A0%95%EB%B3%B4%20%EC%B2%98%EB%A6%AC%20%EA%B8%B0%EC%82%AC%20%EC%8B%A4%EA%B8%B0%208-SQL%20%EC%9D%91%EC%9A%A9/#7-dml---outer-join\">7. DML - OUTER JOIN</a></li>\n<li><a href=\"/%5B2020%5D%20%EC%A0%95%EB%B3%B4%20%EC%B2%98%EB%A6%AC%20%EA%B8%B0%EC%82%AC%20%EC%8B%A4%EA%B8%B0%208-SQL%20%EC%9D%91%EC%9A%A9/#8-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80procedure\">8. 프로시저(Procedure)</a></li>\n<li><a href=\"/%5B2020%5D%20%EC%A0%95%EB%B3%B4%20%EC%B2%98%EB%A6%AC%20%EA%B8%B0%EC%82%AC%20%EC%8B%A4%EA%B8%B0%208-SQL%20%EC%9D%91%EC%9A%A9/#9-%ED%8A%B8%EB%A6%AC%EA%B1%B0trigger\">9. 트리거(Trigger)</a></li>\n<li><a href=\"/%5B2020%5D%20%EC%A0%95%EB%B3%B4%20%EC%B2%98%EB%A6%AC%20%EA%B8%B0%EC%82%AC%20%EC%8B%A4%EA%B8%B0%208-SQL%20%EC%9D%91%EC%9A%A9/#10-%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%A0%95%EC%9D%98-%ED%95%A8%EC%88%98\">10. 사용자 정의 함수</a></li>\n<li><a href=\"/%5B2020%5D%20%EC%A0%95%EB%B3%B4%20%EC%B2%98%EB%A6%AC%20%EA%B8%B0%EC%82%AC%20%EC%8B%A4%EA%B8%B0%208-SQL%20%EC%9D%91%EC%9A%A9/#11-%EC%A0%9C%EC%96%B4%EB%AC%B8\">11. 제어문</a></li>\n<li><a href=\"/%5B2020%5D%20%EC%A0%95%EB%B3%B4%20%EC%B2%98%EB%A6%AC%20%EA%B8%B0%EC%82%AC%20%EC%8B%A4%EA%B8%B0%208-SQL%20%EC%9D%91%EC%9A%A9/#12-sql---%EC%BB%A4%EC%84%9Ccursor\">12. SQL - 커서(Cursor)</a></li>\n</ul>","frontmatter":{"title":"[2020] 정보 처리 기사 실기 8-SQL 응용","path":"/[2020] 정보 처리 기사 실기 8-SQL 응용/","images":["images/1.jpg"],"category":"정보처리기사 실기","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T12:45:00.000Z","components":null,"tweets":null,"summary":"2020 정보 처리 기사 SQL 응용 요약 입니다. 정처기 공부를 할 때 활용하세요."}},"posts":{"edges":[{"node":{"frontmatter":{"type":"portfolio","title":"MOIJA","images":["moija/images/moija.png","moija/images/moija1.png","moija/images/moija2.png","moija/images/moija3.png","moija/images/moija4.png","moija/images/moija5.png"],"path":"/portfolios/moija/","tags":null,"date":"2022-03-02T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"portfolio","title":"VUELOG","images":["vuelog/images/vuelog.png","vuelog/images/vuelog1.png","vuelog/images/vuelog2.png","vuelog/images/vuelog3.png","vuelog/images/vuelog4.png","vuelog/images/vuelog5.png","vuelog/images/vuelog6.png"],"path":"/portfolios/VUELOG/","tags":null,"date":"2022-03-01T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"portfolio","title":"DT CENTER","images":["dtcenter/images/dtcenter.png","dtcenter/images/dtcenter1.png","dtcenter/images/dtcenter2.png","dtcenter/images/dtcenter3.png"],"path":"/portfolios/DT CENTER/","tags":null,"date":"2022-02-21T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"portfolio","title":"COLORBERRY","images":["ColorBerry/images/colorberry.png","ColorBerry/images/colorberry2.png","ColorBerry/images/colorberry3.png","ColorBerry/images/colorberry4.png","ColorBerry/images/colorberry5.png","ColorBerry/images/colorberry6.png","ColorBerry/images/colorberry7.png","ColorBerry/images/colorberry8.png"],"path":"/portfolios/COLORBERRY/","tags":null,"date":"2022-02-20T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 요약","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 요약/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2021-0417T09:24:00000Z","summary":"[2020] 정보 처리 기사 실기 요약 입니다 정처기 공부를 할 때 활용하세요"}}},{"node":{"frontmatter":{"type":null,"title":"벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - node","images":["images/2.jpg"],"path":"/벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - node/","tags":["벡엔드","개발자","면접","기술면접","node"],"date":"2021-04-20T01:00:00.000Z","summary":"벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - node"}}},{"node":{"frontmatter":{"type":null,"title":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - Vue","images":["images/2.jpg"],"path":"/프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - Vue/","tags":["프론트엔드","개발자","면접","기술면접","Vue"],"date":"2021-04-15T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - Vue"}}},{"node":{"frontmatter":{"type":null,"title":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - Vue(1)","images":["images/2.jpg"],"path":"/프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - Vue(1)/","tags":["프론트엔드","개발자","면접","기술면접","Vue"],"date":"2021-04-15T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - Vue(1)"}}},{"node":{"frontmatter":{"type":null,"title":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - CSS","images":["images/2.jpg"],"path":"/프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - CSS/","tags":["프론트엔드","개발자","면접","기술면접","CSS"],"date":"2021-04-14T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - CSS"}}},{"node":{"frontmatter":{"type":null,"title":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - React","images":["images/2.jpg"],"path":"/프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - React/","tags":["프론트엔드","개발자","면접","기술면접","React"],"date":"2021-04-14T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - React"}}},{"node":{"frontmatter":{"type":null,"title":"RxJs 정리","images":["images/2.jpg"],"path":"/RxJs 정리/","tags":["벡엔드","개발자","프론트엔드","기술면접","RxJs"],"date":"2021-04-09T01:00:00.000Z","summary":"RxJs 정리"}}},{"node":{"frontmatter":{"type":null,"title":"벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 기술스택","images":["images/2.jpg"],"path":"/벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 기술스택/","tags":["벡엔드","개발자","면접","기술면접","기술스택"],"date":"2021-04-09T01:00:00.000Z","summary":"벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 기술스택"}}},{"node":{"frontmatter":{"type":null,"title":"벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - CS","images":["images/2.jpg"],"path":"/벡엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - cs/","tags":["벡엔드","개발자","면접","기술면접","CS"],"date":"2021-04-08T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트 파트"}}},{"node":{"frontmatter":{"type":null,"title":"three.js 공부","images":["images/2.jpg"],"path":"/three.js 공부/","tags":["프론트엔드","개발자","면접","기술면접","자바스크립트"],"date":"2021-04-07T01:00:00.000Z","summary":"three.js 공부"}}},{"node":{"frontmatter":{"type":null,"title":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트(1)","images":["images/2.jpg"],"path":"/프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트(1)/","tags":["프론트엔드","개발자","면접","기술면접","자바스크립트"],"date":"2021-04-07T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트(1) 파트"}}},{"node":{"frontmatter":{"type":null,"title":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트(2)","images":["images/2.jpg"],"path":"/프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트(2)/","tags":["프론트엔드","개발자","면접","기술면접","자바스크립트"],"date":"2021-04-07T01:00:00.000Z","summary":"프론트엔드 개발자 면접 질문(기술면접) 질문 정리 모음 - 자바스크립트(2) 파트"}}},{"node":{"frontmatter":{"type":null,"title":"react 공부","images":["images/1.jpg"],"path":"/react 공부/","tags":["react.js","프론트엔드"],"date":"2021-04-05T12:23:00.000Z","summary":"react 공부"}}},{"node":{"frontmatter":{"type":null,"title":"vue 공부 1일차","images":["images/1.jpg"],"path":"/vue공부1일차/","tags":["vue.js","프론트엔드"],"date":"2021-04-04T12:23:00.000Z","summary":"vue 공부 1일차"}}},{"node":{"frontmatter":{"type":null,"title":"vue 공부 1일차","images":["images/1.jpg"],"path":"/vue공부1일차/","tags":["vue.js","프론트엔드"],"date":"2021-04-04T12:23:00.000Z","summary":"vue 공부 1일차"}}},{"node":{"frontmatter":{"type":null,"title":"history api 정리","images":["images/1.jpg"],"path":"/history api 정리/","tags":["네트워크 관리사 2급","자격증","소프트웨어"],"date":"2021-03-03T12:23:00.000Z","summary":"history api 정리"}}},{"node":{"frontmatter":{"type":null,"title":"프로그래머스 데브매칭 고양이 정리","images":["images/1.jpg"],"path":"/프로그래머스 데브매칭 고양이 정리/","tags":["네트워크 관리사 2급","자격증","소프트웨어"],"date":"2021-03-01T12:23:00.000Z","summary":"프로그래머스 데브매칭 고양이 정리입니다."}}},{"node":{"frontmatter":{"type":"portfolio","title":"ANGULOG","images":["angulog/images/angulog.png","angulog/images/angulog2.png","angulog/images/angulog3.png","angulog/images/angulog4.png","angulog/images/angulog5.png","angulog/images/angulog6.png"],"path":"/portfolios/ANGULOG/","tags":null,"date":"2021-02-23T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"portfolio","title":"MBTI WORLD","images":["mbtiworld/images/mbtiworld.png","mbtiworld/images/mbtiworld2.png","mbtiworld/images/mbtiworld3.png","mbtiworld/images/mbtiworld4.png","mbtiworld/images/mbtiworld5.png","mbtiworld/images/mbtiworld6.png","mbtiworld/images/mbtiworld7.png","mbtiworld/images/mbtiworld8.png","mbtiworld/images/mbtiworld9.png","mbtiworld/images/mbtiworld10.png"],"path":"/portfolios/MBTI WORLD/","tags":null,"date":"2021-02-19T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 리눅스_TCPIP_신경향","images":["images/1.jpg"],"path":"/[2020] 네트워크 관리사 2급 실기 요점 정리 - 리눅스_TCPIP_신경향/","tags":["네트워크 관리사 2급","자격증","소프트웨어"],"date":"2021-01-02T12:01:00.000Z","summary":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 리눅스_TCPIP_신경향입니다."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 라우터","images":["images/1.jpg"],"path":"/[2020] 네트워크 관리사 2급 실기 요점 정리 - 라우터/","tags":["네트워크 관리사 2급","자격증","소프트웨어"],"date":"2021-01-01T12:23:00.000Z","summary":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 라우터입니다."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 정리","images":["images/1.jpg"],"path":"/[2020] 네트워크 관리사 2급 실기 요점 정리 - 정리/","tags":["네트워크 관리사 2급","자격증","소프트웨어"],"date":"2021-01-01T12:23:00.000Z","summary":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 정리입니다."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 윈도우 서버","images":["images/1.jpg"],"path":"/[2020] 네트워크 관리사 2급 실기 요점 정리 - 윈도우 서버/","tags":["네트워크 관리사 2급","자격증","소프트웨어"],"date":"2021-01-01T12:21:00.000Z","summary":"[2020] 네트워크 관리사 2급 실기 요점 정리 - 윈도우 서버입니다."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 리눅스 마스터 2급 2차 요점 정리","images":["images/1.jpg"],"path":"/[2020] 리눅스 마스터 2급 2차 요점 정리 - 리눅스 일반/","tags":["리눅스 마스터 2급","자격증","소프트웨어"],"date":"2020-12-03T12:21:00.000Z","summary":"[2020] 리눅스 마스터 2급 2차 (1) 리눅스 일반 요점 정리입니다."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 16-단답형 문제(4)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 16-단답형 문제(4)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-10-15T09:24:00000Z","summary":"[2020] 정보 처리 기사 실기 16-단답형 문제(4)입니다 정처기 공부를 할 때 활용하세요"}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 15-단답형 문제(3)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 15-단답형 문제(3)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-10-15T09:22:00000Z","summary":"[2020] 정보 처리 기사 실기 15-단답형 문제(3)입니다 정처기 공부를 할 때 활용하세요"}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 14-단답형 문제(2)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 14-단답형 문제(2)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-10-15T09:21:00000Z","summary":"[2020] 정보 처리 기사 실기 14-단답형 문제(2)입니다 정처기 공부를 할 때 활용하세요"}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 13-단답형 문제(1)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 13-단답형 문제(1)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-10-14T16:21:00000Z","summary":"[2020] 정보 처리 기사 실기 13-단답형 문제(1)입니다 정처기 공부를 할 때 활용하세요"}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 12-정보 용어 정리","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 12-정보 용어 정리/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-10-14T02:21:00.000Z","summary":"2020 정보 처리 기사 실기 12-정보 용어 정리 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 11-제품 소프트웨어 패키징","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 11-제품 소프트웨어 패키징/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T23:03:00.000Z","summary":"2020 정보 처리 기사 제품 소프트웨어 패키징 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 10-응용 SW 기초 기술 활용(3)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 10-응용 SW 기초 기술 활용(3)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T21:03:00.000Z","summary":"2020 정보 처리 기사 응용 SW 기초 기술 활용 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 10-응용 SW 기초 기술 활용(2)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 10-응용 SW 기초 기술 활용(2)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T21:02:00.000Z","summary":"2020 정보 처리 기사 응용 SW 기초 기술 활용 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 10-응용 SW 기초 기술 활용(1)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 10-응용 SW 기초 기술 활용(1)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T21:01:00.000Z","summary":"2020 정보 처리 기사 응용 SW 기초 기술 활용 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 9-소프트웨어 보안 구축","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 9-소프트웨어 보안 구축/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T19:00:00.000Z","summary":"2020 정보 처리 기사 소프트웨어 보안 구축 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 8-SQL 응용","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 8-SQL 응용/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-17T12:45:00.000Z","summary":"2020 정보 처리 기사 SQL 응용 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 6-화면 설계","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 6-화면 설계/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-16T17:00:00.000Z","summary":"2020 정보 처리 기사 화면 설계 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 7-애플리케이션 테스트 관리","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 7-애플리케이션 테스트 관리/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-16T17:00:00.000Z","summary":"2020 정보 처리 기사 애플리케이션 테스트 관리 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 5-서버 프로그램 구현","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 5-서버 프로그램 구현/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-16T06:31:00.000Z","summary":"2020 정보 처리 기사 서버 프로그램 구현 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 4-통합 구현","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 4-통합 구현/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-16T05:31:00.000Z","summary":"2020 정보 처리 기사 통합 구현 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 3-데이터 입출력 구현","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 3-데이터 입출력 구현/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-15T17:22:00.000Z","summary":"2020 정보 처리 기사 데이터 입출력 구현 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 2-요구 사항 확인","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 2-요구 사항 확인/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-15T17:21:00.000Z","summary":"2020 정보 처리 기사 요구 사항 확인 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[파이썬] itertools 에 대해서 알아보자","images":["images/4.jpg"],"path":"/[파이썬] itertools 에 대해서 알아보자/","tags":["파이썬","itertools","알고리즘"],"date":"2020-07-15T17:00:00.000Z","summary":"파이썬으로 순열, 조합을 빠르게 구해주는 라이브러리"}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 1-프로그래밍 언어 활용(3)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 1-프로그래밍 언어 활용(3)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-11T22:23:00.000Z","summary":"2020 정보 처리 기사 프로그래밍 언어 활용 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 1-프로그래밍 언어 활용(2)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 1-프로그래밍 언어 활용(2)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-11T22:21:00.000Z","summary":"2020 정보 처리 기사 프로그래밍 언어 활용 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[2020] 정보 처리 기사 실기 1-프로그래밍 언어 활용(1)","images":["images/1.jpg"],"path":"/[2020] 정보 처리 기사 실기 1-프로그래밍 언어 활용(1)/","tags":["정보처리기사 실기","정보처리기사","정처기"],"date":"2020-07-11T20:21:00.000Z","summary":"2020 정보 처리 기사 프로그래밍 언어 활용 요약 입니다. 정처기 공부를 할 때 활용하세요."}}},{"node":{"frontmatter":{"type":null,"title":"[파이썬] 파이썬을 이용한 이진탐색트리 구현","images":["images/4.jpg"],"path":"/[파이썬] 파이썬을 이용한 이진탐색트리 구현/","tags":["파이썬","알고리즘","이진탐색트리"],"date":"2020-07-06T22:06:00.000Z","summary":"파이썬을 이용한 이진탐색트리 구현"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(3)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(3)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-05-03T01:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(3)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(2)(운영체제)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(2)(운영체제)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-05-02T01:00:00.000Z","summary":"응용 SW 기초 기술 활용"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(1)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(1)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-05-01T01:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(5)-프로그래밍 언어 활용(1)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(3)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(3)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-04-03T03:05:00.000Z","summary":"정보시스템 구축 관리"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(2)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(2)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-04-02T03:05:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(2)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(1)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(1)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-04-01T03:05:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(4)-정보시스템 구축 관리(1)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(3)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(3)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-03-03T02:01:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(3)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(2)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(2)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-03-02T02:01:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(2)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(1)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(1)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-03-01T02:01:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(3)-소프트웨어 설계(1)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(3)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(3)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-02-03T05:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(3)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(2)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(2)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-02-02T05:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(2)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(1)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(1)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-02-01T05:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(2)-소프트웨어 개발(1)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(3)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(3)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-01-03T05:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(3)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(2)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(2)/","tags":["정보처리기사 필기","정보처리기사"],"date":"2020-01-02T05:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(2)"}}},{"node":{"frontmatter":{"type":null,"title":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(1)","images":["images/2.jpg"],"path":"/2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(1)/","tags":["정보처리기사 필기","정보처리기사","필기","데이터베이스 구축"],"date":"2020-01-01T05:00:00.000Z","summary":"2020 정보처리기사 필기 요점 정리(1)-데이터베이스 구축(1)"}}},{"node":{"frontmatter":{"type":"portfolio","title":"CAPTURE BLOG","images":["CaptureBlog/images/capture1.png","CaptureBlog/images/capture2.png","CaptureBlog/images/capture3.png","CaptureBlog/images/capture4.png","CaptureBlog/images/capture5.png","CaptureBlog/images/capture6.png"],"path":"/portfolios/CAPTURE BLOG/","tags":null,"date":"2020-01-01T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"portfolio","title":"LANGUAGE TOGETHER","images":["languageTogether/images/languagetogether.png","languageTogether/images/languagetogether2.png","languageTogether/images/languagetogether3.png","languageTogether/images/languagetogether4.png","languageTogether/images/languagetogether5.png","languageTogether/images/languagetogether6.png","languageTogether/images/languagetogether7.png","languageTogether/images/languagetogether8.png","languageTogether/images/languagetogether9.png"],"path":"/portfolios/LANGUAGE TOGETHER/","tags":null,"date":"2018-01-01T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"portfolio","title":"MOVIE STAR","images":["moviestar/images/moviestar.png","moviestar/images/moviestar2.png","moviestar/images/moviestar3.png","moviestar/images/moviestar4.png"],"path":"/portfolios/MOVIE STAR/","tags":null,"date":"2018-01-01T00:00:00.000Z","summary":null}}},{"node":{"frontmatter":{"type":"resume","title":"Resume","images":null,"path":"/resume/","tags":null,"date":"2000-01-01T00:00:00.000Z","summary":null}}}]}},"pageContext":{}}}